package db2;

public class liti {
    public static void main(String[] args) {

//        1.例题：问题描述：水仙花数指一个特殊的三位数，它的各位数字的立方和与其自身相等。请输出所有的水仙花数。
//        编程思路：关键是将三位数的个位、十位和百位数字分别拆分出来。
//
//        int i,a,b,c;
//        for(i=100;i<=1000;i++){
//            a=i/100;
//            b=i/10%10;
//            c=i%10;
//            if(a*a*a+b*b*b+c*c*c==i);
//            System.out.println(i);
//        }
//
//        2.问题描述：最大公约数指两个数字公共的约数中最大的，例如数字3的约数有1、3，数字9的约数有1、3、9，
//        则数字3和数字9的公共约数有1和3，其中3是最大的公约数。
//        第一种编程思路：假设初始值从1开始逐步增1，每次把能同时使两个数整除的值都存储起来，那么最后一个存储起来的值就是最大的约数。
//        int m=8,n=12;
//        int result=1;
//        for(int i=1;i<=m;i++){
//            if (m%i==0&&n%i==0){
//                result=i;
//            }
//        }
//        System.out.println(result);

//        3.问题描述：母鸡3元/只，公鸡4元/只，小鸡0.5元/只，如果花100元钱买100只鸡，
//        每一种鸡可以买0只，请问有哪些可能？
//        百元百鸡问题属于数学上的组合问题，可以通过循环控制语句来列举所有的情况，并判断其是否符合要求。
//        第一种编程思路：首先确定母鸡的购买数量为0，使公鸡的购买数量从0-100逐次变化，每当公鸡的数量变化一次，
//        小鸡的数量就从0逐次变化到100，其数值组合如表所示。
//        int i,j,k;
//        for(i=0;i<=33;i++){
//            for(j=0;j<=25;j++){
//                k=100-i-j;
//                if(i*3+j*4+k*0.5==100){
//                    System.out.println("购买母鸡数量："+i+" "+"购买公鸡数量："+j+" "+"购买小鸡数量："+k);
//                }
//            }
//        }




//       4. 问题描述：在控制台中用星号"*"输出如下样式的图形
//
//        编程思路：在外部使用循环语句执行5次每次打印1行，每行的内容分别为空格和星号""，
//        每行空格缩进的数量为5减去所在行数，星号""的数量是所在行数的2倍减1。
//        在内部使用循环语句首先打印空格，然后打印星号"*"，对应的打印次数用循环次数控制，打印星号之后就可以换行。
//        int row,k,x;
//        for(row=1;row<=5;row++){
//            for(k=0;k<5-row;k++){
//                System.out.print(' ');
//            }
//            for (x=0;x<2*row-1;x++){
//                System.out.print('*');
//            }
//            System.out.println();
//        }
//
////        5.问题描述：如何判断某个自然数是否为质数。
//        质数是只能被1和自身整除的自然数，也称素数，质数中最小的为2。所有自然数都可以被自身和1整除。
//        编程思路：我们只需判断一个数能否被1和自身以外的数字整除即可，大于其本身的自然数除外。若数字为n，
//        则只需判断从2到n-1之间的所有数字，即程序只需判断该数能否被区间[2,n-1]内的某个自然数整除即可，
//        若在区间内存在能被整除的数则说明不是质数。

        int m=19;
        boolean b =true;
        for(int i=2;i<m;i++){
            if(m%i==0){
                b=false;
                break;
            }
        }
        if(b){
            System.out.println("是质数");
        }else{
            System.out.println("不是质数");
        }


    }
}
